package org.wmq.positiontoshop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.wmq.positiontoshop.model.DO.Shop;

import java.util.List;

/**
 * Shop Service接口
 * 继承MyBatis-Plus的IService，提供店铺相关的业务逻辑操作
 */
public interface ShopService extends IService<Shop> {
    
    /**
     * 根据经纬度和半径查询附近的店铺
     * 
     * @param longitude 经度
     * @param latitude 纬度
     * @param radius 半径（千米）
     * @return 附近的店铺列表
     */
    List<Shop> getNearbyShops(Double longitude, Double latitude, Double radius);
    
    /**
     * 根据店铺类型查询店铺
     * 
     * @param type 店铺类型
     * @return 该类型的店铺列表
     */
    List<Shop> getShopsByType(String type);
    
    /**
     * 查询营业中的店铺
     * 
     * @return 营业中的店铺列表
     */
    List<Shop> getActiveShops();
    
    /**
     * 根据评分排序查询店铺
     * 
     * @param limit 查询数量
     * @return 按评分排序的店铺列表
     */
    List<Shop> getTopRatedShops(Integer limit);

    boolean addScore(Long id, long score);

    List<Shop> getTop5ByScore(Double langtitude, Double latitude, Double radius);
}